import matplotlib.pyplot as plt
import matplotlib as mlb


def plot_accuracy_and_loss(db_train_acc_list, gotmd_train_acc_list, db_train_loss_list, gotmd_train_loss_list):

    """
    绘制准确率、损失曲线的函数。

    参数:
    db_train_acc_list: 糖尿病训练准确率数据列表
    gotmd_train_acc_list: 痛风准确率数据列表
    db_train_loss_list: 糖尿病训练损失数据列表
    gotmd_train_loss_list: 糖尿病验证损失数据列表
    """
    try:
        mlb.rcParams['font.family'] = 'SimHei'  # 设置中文字体为黑体，解决中文显示问题，也可按需换其他字体
    except KeyError:
        print("字体配置参数设置可能出现问题，请检查matplotlib相关配置")

    # 绘制训练、验证准确率曲线
    plt.figure(figsize=(10, 10))
    plt.plot(db_train_acc_list, label='糖尿病训练准确率')
    plt.plot(gotmd_train_acc_list, label='痛风训练准确率')
    plt.legend(loc='lower right')
    plt.title('训练、验证准确率')
    plt.show()

    # 绘制训练、验证损失曲线
    plt.figure(figsize=(10, 10))
    plt.plot(db_train_loss_list, label='糖尿病训练误差')
    plt.plot(gotmd_train_loss_list, label='痛风验证误差')
    plt.legend(loc='lower right')
    plt.title('训练、验证损失')
    plt.show()
